package com.kgc.sbt.service;

import com.kgc.sbt.beans.*;
import com.kgc.sbt.utils.PageSupportUtil;

import java.util.List;


/**
 * Created on 2021/8/16.
 * <p>
 * Author : Lcywings
 * <p>
 * Description :
 */
public interface SearchService {

    /**
     * @author : Lcywings
     * @date : 2021/8/16 15:05
     * @acl : true
     * @description : 根据用户输入的关键词进行模糊查询
     */
    PageSupportUtil<Product> queryProductList(String keywords, Integer pageSize, Integer pageNo);

    /**
     * @author : Lcywings
     * @date : 2021/8/17 12:37
     * @acl : true
     * @description : 根据商品id返回商品数据，评论数据，图片数据
     */
    ProductDetails queryProductDetails(String productId);

    /**
     * @author : Lcywings
     * @date : 2021/8/17 12:37
     * @acl : true
     * @description : 根据轮播图序号，返回轮播图
     */
    List<RotationChart> queryRotationCharts(Integer chartNo);

    /**
     * @author : Lcywings
     * @date : 2021/8/17 17:36
     * @acl : true
     * @description : 首页数据-小米有品众筹
     */
    List<Product> queryCrowdFunding();

    /**
     * @author : Lcywings
     * @date : 2021/8/17 17:37
     * @acl : true
     * @description :    首页数据-有品秒杀
     */
    List<Product> querySecKill();

    /**
     * @author : Lcywings
     * @date : 2021/8/17 17:38
     * @acl : true
     * @description :  首页数据-每日新品
     */
    List<Product> queryDailyNew();

    /**
     * @author : Lcywings
     * @date : 2021/8/19 11:42
     * @acl : true
     * @description : 首页数据-专属推荐
     */
    List<Product> queryVipRecommend(Integer userId);

    /**
     * @author : Lcywings
     * @date : 2021/8/18 8:34
     * @acl : true
     * @description : 加入收藏
     */
    List<Boolean> addCollect(Integer userId, Integer productId);


    /**
     * @author : Lcywings
     * @date : 2021/8/20 10:34
     * @acl : true
     * @description :查询收藏列表
     */
    PageSupportUtil<UserCollectDetail> collectList(Integer userId, Integer pageSize, Integer pageNo);


    /**
     * @author : Lcywings
     * @date : 2021/8/21 14:08
     * @acl : true
     * @description : 通过token获得用户id
     */
    Integer selectUserIdByToken(String token);


    /**
     * @author : Lcywings
     * @date : 2021/8/21 14:15
     * @acl : true
     * @description : 通过token获得用户id
     */
    Integer getProductIdByproductCode(String productCode);

}

